:root {
  --chatbot-color-light: #000000;
  --chatbot-color-dark: #FFFFFF;
  --chatbot-background-color-light: #F3F3F3;
  --chatbot-background-color-dark: #121111;
  --message-user-background-color-light: #95EC69; 
  --message-user-background-color-dark: #26B561;
  --message-bot-background-color-light: #FFFFFF;
  --message-bot-background-color-dark: #2C2C2C;
  --switch-checkbox-color-light: #e5e7eb;
  --switch-checkbox-color-dark: #515151;
}


#app_title {
  font-weight: var(--prose-header-text-weight);
  font-size: var(--text-xxl);
  line-height: 1.3;
  text-align: left;
  margin-top: 6px;
  white-space: nowrap;
}
#description {
  text-align: center;
  margin: 32px 0 4px 0;
}

/* Fix padding error when container=False */  
div.form {
  background: none !important;
}

/* Advanced page */
#advanced_warning {
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  align-content: center;
}

/* Gradio footer info */
footer {
  /* display: none !important; */
  margin-top: .2em !important;
  font-size: 85%;
}
#footer {
  text-align: center;
}
#footer div {
  display: inline-block;
}
#footer .versions{
  font-size: 85%;
  opacity: 0.60;
}

#float_display {
  position: absolute;
  max-height: 30px;
}
#toast-update {
  position: absolute;
  display: flex;
  top: -500px;
  width: 100%;
  justify-content: center;
  z-index: var(--layer-top);
  transition: top 0.3s ease-out;
}
#check-chuanhu-update {
  position: absolute;
  align-items: center;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: var(--size-6) var(--size-4);
  box-shadow: var(--shadow-drop-lg);
  border: 1px solid var(--block-label-border-color);
  border-radius: var(--container-radius);
  background: var(--background-fill-primary);
  padding: var(--size-4) var(--size-6);
  min-width: 360px;
  max-width: 480px;
  overflow: hidden;
  pointer-events: auto;
}
#version-info-title {
  font-size: 1.2em;
  font-weight: bold;
  text-align: start;
  width: 100%;
}
#release-note-wrap {
  width: 100%;
  max-width: 400px;
  height: 120px;
  border: solid 1px var(--border-color-primary);
  overflow: auto;
  padding: 0 8px;
}
#release-note-wrap.hideK {
  display: none;
}
.btn-update-group {
  display: flex;
  justify-content: space-evenly;
  align-items: center;
  width: 100%;
  padding-top: 10px;
}
.btn-update-group.hideK {
  display: none;
}
/* user_info */
#user_info.block {
  white-space: nowrap;
  position: absolute; left: 8em; top: .8em;
  z-index: var(--layer-2);
  box-shadow: var(--block-shadow);
  border: none!important; border-radius: var(--block-label-radius);
  background: var(--color-accent);
  padding: var(--block-label-padding);
  font-size: var(--block-label-text-size); line-height: var(--line-sm);
  width: auto; max-height: 30px!important;
  opacity: 1;
  transition: opacity 0.3s ease-in-out;
}
#user_info.block .wrap {
  opacity: 0;
}
#user_info p {
  color: white;
  font-weight: var(--block-label-text-weight);
}
#user_info.hideK {
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

/* status_display */
#status_display {
  display: flex;
  min-height: 2em;
  align-items: flex-end;
  justify-content: flex-end;
}
#status_display p {
  font-size: .85em;
  font-family: ui-monospace, "SF Mono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "Microsoft Yahei UI", "Microsoft Yahei", monospace;
  /* Fallback to Microsoft Yahei on Windows */
  color: var(--body-text-color-subdued);
}

#status_display {
  transition: all 0.6s;
}
#chuanhu_chatbot {
  transition: height 0.3s ease;
}

/* usage_display */
.insert_block {
  position: relative;
  margin: 0;
  padding: 8px 12px;
  box-shadow: var(--block-shadow);
  border-width: var(--block-border-width);
  border-color: var(--block-border-color);
  border-radius: var(--block-radius);
  background: var(--block-background-fill);
  width: 100%;
  line-height: var(--line-sm);
  min-height: 2em;
}
#usage_display p, #usage_display span {
  margin: 0;
  font-size: .85em;
  color: var(--body-text-color-subdued);
}
.progress-bar {
  background-color: var(--input-background-fill);;
  margin: .5em 0 !important;
  height: 20px;
  border-radius: 10px;
  overflow: hidden;
}
.progress {
  background-color: var(--block-title-background-fill);
  height: 100%;
  border-radius: 10px;
  text-align: right;
  transition: width 0.5s ease-in-out;
}
.progress-text {
  /* color: white; */
  color: var(--color-accent) !important;
  font-size: 1em !important;
  font-weight: bold;
  padding-right: 10px;
  line-height: 20px;
}

/* Light/dark mode switch */
#apSwitch input[type="checkbox"] {
  margin: 0 !important;
}
#apSwitch label.apSwitch {
  display: flex;
  align-items: center;
  cursor: pointer;
  color: var(--body-text-color);
  font-weight: var(--checkbox-label-text-weight);
  font-size: var(--checkbox-label-text-size);
  line-height: var(--line-md);
  margin: 2px 0 !important;
}
input[type="checkbox"]#apSwitch_checkbox::before {
  background: none !important;
  content: '';
  border: none !important;
  box-shadow: none !important;
  font-size: 22px;
  top: -4.4px;
  left: -1px;
}
input:checked[type="checkbox"]#apSwitch_checkbox::before {	
    content: '';	
    left: 16px;	
}	
/* .apSwitch {	
    top: 2px;	
    display: inline-block;	
    height: 22px;	
    position: relative;	
    width: 40px;	
    border-radius: 11px;	
    box-shadow: inset 0 0 1px 0 rgba(0,0,0,0.05), inset 0 0 2px 0 rgba(0,0,0,0.08) !important;	
}	
.apSwitch input {	
    display: none !important;	
}	
.apSlider {	
    background-color: var(--neutral-200);	
    bottom: 0;	
    cursor: pointer;	
    left: 0;	
    position: absolute;	
    right: 0;	
    top: 0;	
    transition: .4s;	
    font-size: 22px;	
    border-radius: 11px;	
}	
.apSlider::before {	
    transform: scale(0.9);	
    position: absolute;	
    transition: .4s;	
    content: "🌞";	
}	
input:checked + .apSlider {	
    background-color: var(--primary-600);	
}	
input:checked + .apSlider::before {	
    transform: translateX(18px);	
    content:"🌚";	
} */	
.switch_checkbox label {	
    flex-direction: row-reverse;	
    justify-content: space-between;	
}	
.switch_checkbox input[type="checkbox"] + span {	
    margin-left: 0 !important;	
}	
.switch_checkbox input[type="checkbox"] {	
    -moz-appearance: none;	
    appearance: none;	
    -webkit-appearance: none;	
    outline: none;	
}	
.switch_checkbox input[type="checkbox"] {	
    display: inline-block !important;	
    position: relative !important;	
    border: none !important;	
    outline: none;	
    width: 40px !important;	
    height: 22px !important;	
    border-radius: 11px !important;	
    background-image: none !important;	
    box-shadow: inset 0 0 1px 0 rgba(0,0,0,0.05), inset 0 0 2px 0 rgba(0,0,0,0.08) !important;	
    background-image: none !important;	
    background-color: var(--switch-checkbox-color-light) !important;	
    transition: .2s ease background-color;	
}	
.dark .switch_checkbox input[type="checkbox"] {	
    background-color: var(--switch-checkbox-color-dark) !important;	
}	
.switch_checkbox input[type="checkbox"]::before {	
    content: "";	
    position: absolute;	
    width: 22px;	
    height: 22px;	
    top: 0;	
    left: 0;	
    background: #FFFFFF;	
    border: 0.5px solid rgba(0,0,0,0.02);	
    box-shadow: 0 0 0 0 rgba(0,0,0,0.15), 0 1px 0 0 rgba(0,0,0,0.05);	
    transform: scale(0.9);	
    border-radius: 11px !important;	
    transition: .4s ease all;	
    box-shadow: var(--input-shadow);	
}	
.switch_checkbox input:checked[type="checkbox"] {	
    background-color: var(--primary-600) !important;	
}	
.switch_checkbox input:checked[type="checkbox"]::before {	
    background-color: #fff;	
    left: 18px;	
}

/* Override Slider Styles (for webkit browsers like Safari and Chrome)
 * Hope this proposal can be implemented soon https://github.com/w3c/csswg-drafts/issues/4410
 * Sliders are too inconsistent across platforms  
 */
input[type="range"] {
  -webkit-appearance: none;
  height: 4px;
  background: var(--input-background-fill);
  border-radius: 5px;
  background-image: linear-gradient(var(--primary-500),var(--primary-500));
  background-size: 0% 100%;
  background-repeat: no-repeat;
}
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  height: 20px;
  width: 20px;
  border-radius: 50%;
  border: solid 0.5px #ddd;
  background-color: white;
  cursor: ew-resize;
  box-shadow: var(--input-shadow);
  transition: background-color .1s ease;
}
input[type="range"]::-webkit-slider-thumb:hover {
  background: var(--neutral-50);
}  
input[type=range]::-webkit-slider-runnable-track {
  -webkit-appearance: none;
  box-shadow: none;
  border: none;
  background: transparent;
}

hr.append-display {
  margin: 8px 0;
  border: none;
  height: 1px;
  border-top-width: 0;
  background-image: linear-gradient(to right, rgba(50,50,50, 0.1), rgba(150, 150, 150, 0.8), rgba(50,50,50, 0.1));
}
.source-a {
  font-size: 0.8em;
  max-width: 100%;
  margin: 0;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  /* background-color: #dddddd88; */
  border-radius: 1.5rem;
  padding: 0.2em;
}
.source-a a {
  display: inline-block;
  background-color: #aaaaaa50;
  border-radius: 1rem;
  padding: 0.5em;
  text-align: center;
  text-overflow: ellipsis;
  overflow: hidden;  
  min-width: 20%;
  white-space: nowrap;
  margin: 0.2rem 0.1rem;
  text-decoration: none !important;
  flex: 1;
  transition: flex 0.5s;
}
.source-a a:hover {
  background-color: #aaaaaa20;
  flex: 2;  
}

#submit_btn, #cancel_btn {
  height: 42px !important;
}
#submit_btn::before {
  content: url("data:image/svg+xml, %3Csvg width='21px' height='20px' viewBox='0 0 21 20' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3Cg id='page' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cg id='send' transform='translate(0.435849, 0.088463)' fill='%23FFFFFF' fill-rule='nonzero'%3E %3Cpath d='M0.579148261,0.0428666046 C0.301105539,-0.0961547561 -0.036517765,0.122307382 0.0032026237,0.420210298 L1.4927172,18.1553639 C1.5125774,18.4334066 1.79062012,18.5922882 2.04880264,18.4929872 L8.24518329,15.8913017 L11.6412765,19.7441794 C11.8597387,19.9825018 12.2370824,19.8832008 12.3165231,19.5852979 L13.9450591,13.4882182 L19.7839562,11.0255541 C20.0619989,10.8865327 20.0818591,10.4694687 19.7839562,10.3105871 L0.579148261,0.0428666046 Z M11.6138902,17.0883151 L9.85385903,14.7195502 L0.718169621,0.618812241 L12.69945,12.9346347 L11.6138902,17.0883151 Z' id='shape'%3E%3C/path%3E %3C/g%3E %3C/g%3E %3C/svg%3E");
  height: 21px;
}
#cancel_btn::before {
  content: url("data:image/svg+xml,%3Csvg width='21px' height='21px' viewBox='0 0 21 21' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3E %3Cg id='pg' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'%3E %3Cpath d='M10.2072007,20.088463 C11.5727865,20.088463 12.8594566,19.8259823 14.067211,19.3010209 C15.2749653,18.7760595 16.3386126,18.0538087 17.2581528,17.1342685 C18.177693,16.2147282 18.8982283,15.1527965 19.4197586,13.9484733 C19.9412889,12.7441501 20.202054,11.4557644 20.202054,10.0833163 C20.202054,8.71773046 19.9395733,7.43106036 19.4146119,6.22330603 C18.8896505,5.01555169 18.1673997,3.95018885 17.2478595,3.0272175 C16.3283192,2.10424615 15.2646719,1.3837109 14.0569176,0.865611739 C12.8491633,0.34751258 11.5624932,0.088463 10.1969073,0.088463 C8.83132146,0.088463 7.54636692,0.34751258 6.34204371,0.865611739 C5.1377205,1.3837109 4.07407321,2.10424615 3.15110186,3.0272175 C2.22813051,3.95018885 1.5058797,5.01555169 0.984349419,6.22330603 C0.46281914,7.43106036 0.202054,8.71773046 0.202054,10.0833163 C0.202054,11.4557644 0.4645347,12.7441501 0.9894961,13.9484733 C1.5144575,15.1527965 2.23670831,16.2147282 3.15624854,17.1342685 C4.07578877,18.0538087 5.1377205,18.7760595 6.34204371,19.3010209 C7.54636692,19.8259823 8.83475258,20.088463 10.2072007,20.088463 Z M10.2072007,18.2562448 C9.07493099,18.2562448 8.01471483,18.0452309 7.0265522,17.6232031 C6.03838956,17.2011753 5.17031614,16.6161693 4.42233192,15.8681851 C3.6743477,15.1202009 3.09105726,14.2521274 2.67246059,13.2639648 C2.25386392,12.2758022 2.04456558,11.215586 2.04456558,10.0833163 C2.04456558,8.95104663 2.25386392,7.89083047 2.67246059,6.90266784 C3.09105726,5.9145052 3.6743477,5.04643178 4.42233192,4.29844756 C5.17031614,3.55046334 6.036674,2.9671729 7.02140552,2.54857623 C8.00613703,2.12997956 9.06463763,1.92068122 10.1969073,1.92068122 C11.329177,1.92068122 12.3911087,2.12997956 13.3827025,2.54857623 C14.3742962,2.9671729 15.2440852,3.55046334 15.9920694,4.29844756 C16.7400537,5.04643178 17.3233441,5.9145052 17.7419408,6.90266784 C18.1605374,7.89083047 18.3698358,8.95104663 18.3698358,10.0833163 C18.3698358,11.215586 18.1605374,12.2758022 17.7419408,13.2639648 C17.3233441,14.2521274 16.7400537,15.1202009 15.9920694,15.8681851 C15.2440852,16.6161693 14.3760118,17.2011753 13.3878492,17.6232031 C12.3996865,18.0452309 11.3394704,18.2562448 10.2072007,18.2562448 Z M7.65444721,13.6242324 L12.7496608,13.6242324 C13.0584616,13.6242324 13.3003556,13.5384544 13.4753427,13.3668984 C13.6503299,13.1953424 13.7378234,12.9585951 13.7378234,12.6566565 L13.7378234,7.49968276 C13.7378234,7.19774418 13.6503299,6.96099688 13.4753427,6.78944087 C13.3003556,6.61788486 13.0584616,6.53210685 12.7496608,6.53210685 L7.65444721,6.53210685 C7.33878414,6.53210685 7.09345904,6.61788486 6.91847191,6.78944087 C6.74348478,6.96099688 6.65599121,7.19774418 6.65599121,7.49968276 L6.65599121,12.6566565 C6.65599121,12.9585951 6.74348478,13.1953424 6.91847191,13.3668984 C7.09345904,13.5384544 7.33878414,13.6242324 7.65444721,13.6242324 Z' id='shape' fill='%23FF3B30' fill-rule='nonzero'%3E%3C/path%3E %3C/g%3E %3C/svg%3E");
  height: 21px;
}
/* list */
ol:not(.options), ul:not(.options) {
  padding-inline-start: 2em !important; 
}

/* Light theme (default) */  
#chuanhu_chatbot {
  background-color: var(--chatbot-background-color-light) !important;
  color: var(--chatbot-color-light) !important;
}
[data-testid = "bot"] {
  background-color: var(--message-bot-background-color-light) !important;
}
[data-testid = "user"] {
  background-color: var(--message-user-background-color-light) !important;
}
/* Dark theme */
.dark #chuanhu_chatbot {
  background-color: var(--chatbot-background-color-dark) !important;
  color: var(--chatbot-color-dark) !important;
}  
.dark [data-testid = "bot"] {
  background-color: var(--message-bot-background-color-dark) !important;
}
.dark [data-testid = "user"] {
  background-color: var(--message-user-background-color-dark) !important;
}

/* Devices with screen width >= 500px */
/* Height adjustments written in JavaScript since 2023.4.8 */ 
@media screen and (min-width: 500px) {
  #chuanhu_chatbot {
    height: calc(100vh - 200px);
  }
  #chuanhu_chatbot>.wrapper>.wrap {
    max-height: calc(100vh - 200px - var(--line-sm)*1rem - 2*var(--block-label-margin) );
  }
}
/* Devices with screen width < 500px */
@media screen and (max-width: 499px) {
  #chuanhu_chatbot {
    height: calc(100vh - 140px);
  }
  #chuanhu_chatbot>.wrapper>.wrap {
    max-height: calc(100vh - 140px - var(--line-sm)*1rem - 2*var(--block-label-margin) );
  }
  [data-testid = "bot"] {
    max-width: 95% !important;
  }
  #app_title h1{
    letter-spacing: -1px; font-size: 22px;
  }
}
#chuanhu_chatbot>.wrapper>.wrap {
  overflow-x: hidden;
}
/* Chat bubbles */
.message {
  border-radius: var(--radius-xl) !important;
  border: none;
  padding: var(--spacing-xl) !important;
  font-size: var(--text-md) !important;
  line-height: var(--line-md) !important;
  min-height: calc(var(--text-md)*var(--line-md) + 2*var(--spacing-xl));
  min-width: calc(var(--text-md)*var(--line-md) + 2*var(--spacing-xl));
}
[data-testid = "bot"] {
  max-width: 85%;
  border-bottom-left-radius: 0 !important; 
}
[data-testid = "user"] {
  max-width: 85%;
  width: auto !important;
  border-bottom-right-radius: 0 !important;
}

.message.user p {
  white-space: pre-wrap;
}
.message .user-message {
  display: block;
  padding: 0 !important;
  white-space: pre-wrap;
}

.message .md-message p {
  margin-top: 0.6em !important;
  margin-bottom: 0.6em !important;
}
.message .md-message p:first-child { margin-top: 0 !important; }
.message .md-message p:last-of-type { margin-bottom: 0 !important; }

.message .md-message {
  display: block;
  padding: 0 !important;
}
.message .raw-message p {
  margin:0 !important;  
}
.message .raw-message {
  display: block;
  padding: 0 !important;
  white-space: pre-wrap;
}
.raw-message.hideM, .md-message.hideM {
  display: none;
}

/* Custom buttons */
.chuanhu-btn {
  border-radius: 5px;
  /* background-color: #E6E6E6 !important; */
  color: rgba(120, 120, 120, 0.64) !important;
  padding: 4px !important;
  position: absolute;
  right: -22px;
  cursor: pointer !important;
  transition: color .2s ease, background-color .2s ease;
}
.chuanhu-btn:hover {
  background-color: rgba(167, 167, 167, 0.25) !important;
  color: unset !important;
}
.chuanhu-btn:active {
  background-color: rgba(167, 167, 167, 0.5) !important; 
}
.chuanhu-btn:focus {
  outline: none;
}
.copy-bot-btn {
  /* top: 18px; */
  bottom: 0;
}
.toggle-md-btn {
  /* top: 0; */
  bottom: 20px;  
} 
.copy-code-btn {
  position: relative;
  float: right;
  font-size: 1em;
  cursor: pointer;
}

.message-wrap>div img{
  border-radius: 10px !important;
}

/* History message */  
.wrapper>.wrap>.history-message {
  padding: 10px !important;
}
.history-message {
  /* padding: 0 !important; */
  opacity: 80%;
  display: flex;
  flex-direction: column;
}
.history-message>.history-message {
  padding: 0 !important;
}
.history-message>.message-wrap {
  padding: 0 !important;
  margin-bottom: 16px;
}
.history-message>.message {
  margin-bottom: 16px;
}
.wrapper>.wrap>.history-message::after {
  content: "";
  display: block;
  height: 2px;
  background-color: var(--body-text-color-subdued);
  margin-bottom: 10px;
  margin-top: -10px;
  clear: both;
}
.wrapper>.wrap>.history-message>:last-child::after {
  content: "For viewing only";
  display: block;
  text-align: center;
  color: var(--body-text-color-subdued);
  font-size: 0.8em;  
}

/* Table */
table {
  margin: 1em 0;
  border-collapse: collapse;
  empty-cells: show;
}  
td,th {
  border: 1.2px solid var(--border-color-primary) !important;
  padding: 0.2em;
}
thead {
  background-color: rgba(175,184,193,0.2);
}
thead th {
  padding: .5em .2em;  
}
/* Inline code */
.message :not(pre) code {
  display: inline;
  white-space: break-spaces;
  font-family: var(--font-mono);
  border-radius: 6px;
  margin: 0 2px 0 2px;
  padding: .2em .4em .1em .4em;
  background-color: rgba(175,184,193,0.2);  
}
/* Code block */
.message pre,
.message pre[class*=language-] {
  color: #fff;
  overflow-x: auto;
  overflow-y: hidden;
  margin: .8em 1em 1em 0em !important; 
  padding: var(--spacing-xl) 1.2em !important;
  border-radius: var(--radius-lg) !important;
}
.message pre code,  
.message pre code[class*=language-] {
  color: #fff;
  padding: 0;
  margin: 0;
  background-color: unset;
  text-shadow: none;
  font-family: var(--font-mono);
}
/* Override Gradio's ugly copy button styles */  
pre button[title="copy"] {
  border-radius: 5px;
  transition: background-color .2s ease;
}
pre button[title="copy"]:hover {
  background-color: #333232; 
}
pre button .check {
  color: #fff !important;
  background: var(--neutral-950) !important;  
}

/* Override prism.css */
.language-css .token.string,
.style .token.string, 
.token.entity,
.token.operator,
.token.url {
  background: none !important;
}